Having done a number of different interfaces to excel this is the most lightweight and simple
// need these usings
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data.OleDb;
using System.Data;
using System.IO;
string fileName = string.Format("{0}\\TestData\\Contractors.xls", HostingEnvironment.ApplicationPhysicalPath) ;
string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0", fileName);
OleDbConnection conn = new OleDbConnection(connectionString);
var adapter = new OleDbDataAdapter("SELECT * FROM [contractorsheet$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "contractorSheet");
var data = ds.Tables["contractorSheet"].AsEnumerable();
foreach (var ret in data) <--- ret is a line in the spreadsheet
{
Address address = new Address();
address.streetAddress = ret.Field<string>("street");
address.city = ret.Field<string>("city");
address.state = ret.Field<string>("state");
address.postalCode = ret.Field<double>("zip").ToString();
db.Addresses.Add(address);
}